﻿//========================================
// All rights reserved (C) 2017-2100
// CLR 版本：	4.0.30319.42000
// 命名空间:	SFJDManagement
// 文 件 名：	HtmlPrint2
// 作    者：	WooG
// 联系方式：	wooglle@163.com
// 创建时间：	2018/1/9 18:56:45
//========================================
using Common;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Controls;

namespace SFJDManagement
{
    class HtmlPrint2
    {
        private StringBuilder strHTMLBuilder = new StringBuilder();

        public HtmlPrint2(string str, DataGrid dataGrid)
        {
            Ini(str);
            GenerateByDataGrid(str, dataGrid);
        }

        private void Ini(string str)
        {
            add("<html>");
            add("<head>");
            add("<meta charset='utf-8'>");
            add("<title>打印预览</title>");
            add("<style type='text/css'>");
            add("h3{text-align:center;font-family:'微软雅黑';font-size:26px}");
            add("table,table tr td{border:1px solid;font-size:18px;line-height:32px;}");
            add("table tr th{border:0px solid;font-family:'微软雅黑';}");
            add("table{margin:0 auto; border-collapse:collapse; font-family:仿宋; font-size:smaller}");
            add("</style>");
            add("</head>");
            add("<body>");
        }

        private void GenerateByDataGrid(string str, DataGrid dataGrid)
        {
            int[] array_index = new int[5];
            for(int i = 0; i < dataGrid.Columns.Count; i++)
            {
                switch (dataGrid.Columns[i].Header)
                {
                    case "委托人":
                        array_index[0] = i;
                        break;
                    case "字号":
                        array_index[1] = i;
                        break;
                    case "完稿":
                        array_index[2] = i;
                        break;
                    case "委托时间":
                        array_index[3] = i;
                        break;
                    case "车辆及项目":
                        array_index[4] = i;
                        break;
                }
            }
            for (int i = 0; i < dataGrid.Items.Count; i++)
            {
                DataGridRow gridRow = dataGrid.GetRow(i);
                if (gridRow.Visibility == System.Windows.Visibility.Visible)
                {
                    add("<h3>" + Runtime.institution + "<br/>鉴 定 报 告 接 收 回 执 单</h3>");
                    add("<table>");
                    ClassData data = gridRow.DataContext as ClassData;
                    //add("<tr><th colspan=\"4\">陕 西 立 信 机 动 车 物 证 司 法 鉴 定 所<br/>鉴 定 报 告 接 收 回 执 单</th></tr>");

                    add("<tr>");
                    add("<td>" + "委托单位" + "</td>");
                    add("<td>" + (dataGrid.GetCell(i, array_index[0]).Content as TextBlock).Text + "</td>");
                    add("<td>" + "鉴定单位" + "</td>");
                    add("<td>" + Runtime.institution + "</td>");
                    add("</tr>");

                    add("<tr>");
                    add("<td>" + "报告字号" + "</td>");
                    add("<td>陕中正车鉴字[" + data.TimeArrange.Year + "]第 " + (dataGrid.GetCell(i, array_index[1]).Content as TextBlock).Text + " 号</td>");
                    add("<td>" + "事故车辆" + "</td>");
                    add("<td>" + GetVehicles(data.Vehicles) + "</td>");
                    add("</tr>");

                    add("<tr>");
                    add("<td>" + "案件受理人" + "</td>");
                    add("<td>" + (dataGrid.GetCell(i, array_index[2]).Content as TextBlock).Text + "</td>");
                    add("<td>" + "受理日期" + "</td>");
                    add("<td>" + (dataGrid.GetCell(i, array_index[3]).Content as TextBlock).Text + "</td>");
                    add("</tr>");

                    add("<tr>");
                    add("<td>" + "案件签收人" + "</td>");
                    add("<td> </td>");
                    add("<td>" + "签收日期" + "</td>");
                    add("<td> </td>");
                    add("</tr>");

                    add("<tr>");
                    add("<td>" + "报告质量反馈" + "</td>");
                    add("<td align='center' colspan='3'> □&nbsp;采信&nbsp;满意&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;□&nbsp;不采信&nbsp;不满意</td>");
                    add("</tr>");

                    add("</table>");
                    add("<p></p><p></p>");
                }
            }
            add("</body>");
            add("</html>");
        }

        private string GetVehicles(List<ClassVehicle> list)
        {
            string b = "";
            foreach (ClassVehicle vehicle in list)
            {
                if (Regex.IsMatch(vehicle.Number, "无"))
                {
                    b += "无号牌" + vehicle.Type;
                }
                else
                {
                    b += vehicle.Number;
                }
                b += "<br/>";
            }
            b = b.Substring(0, b.Length - 5);
            return b;
        }
        
        private void add(string str)
        {
            strHTMLBuilder.Append(str);
        }

        public string GetHtml()
        {
            return strHTMLBuilder.ToString();
        }
    }
}
